home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Documentation / d e v e l o p / Develop Issue 23 article / Geometry Sample / Shell src / AESupport.c next >
Encoding:
C/C++ Source or Header  |  1997-08-14  |  3.2 KB  |  108 lines  |  [TEXT/MPS ]

  1.  
  2. #include "BuildControl.h"
  3.  
  4.  
  5.  
  6. #if defined(qUseDumpFile)
  7.     #include "DumpHeader.h"
  8. #else
  9.     #include <Resources.h>
  10. #endif
  11.  
  12. #include "AESupport.h"
  13.  
  14. struct AEHandler {
  15.     AEEventClass            aeClass;
  16.     AEEventID                aeID;
  17.     AEEventHandlerProcPtr    aeProc;
  18. };
  19. typedef struct AEHandler AEHandler;
  20.  
  21. enum {kNumOfAEHandlers = 4};
  22.  
  23.  
  24.  
  25. static AEDesc pSelfTarget;
  26. extern Boolean gDone;
  27.  
  28. //----------------------------------------------------------------------------
  29. // CreateAETarget
  30. //----------------------------------------------------------------------------
  31. #pragma segment AESupport
  32. OSErr CreateAETarget(ProcessSerialNumber *targetPSN, AEDesc *targetDesc)
  33. {
  34.     return AECreateDesc(typeProcessSerialNumber, (Ptr) targetPSN,
  35.                         sizeof(ProcessSerialNumber), targetDesc);
  36. }
  37.  
  38. //----------------------------------------------------------------------------
  39. // InitAppleEventsStuff
  40. //----------------------------------------------------------------------------
  41. #pragma segment Initialize
  42. void InitAESupport(void)
  43. {
  44.     ProcessSerialNumber targetPSN;
  45.     OSErr                err;
  46.     AEEventHandlerUPP    eventProc;
  47.     short                index;
  48.     AEHandler            *theHandler, aeHandler[kNumOfAEHandlers] = 
  49.                         {{kCoreEventClass,    kAEOpenApplication,    (AEEventHandlerProcPtr) DoAEOpenApplication}, 
  50.                         {kCoreEventClass,    kAEOpenDocuments,    (AEEventHandlerProcPtr) DoAEOpenDocuments},
  51.                         {kCoreEventClass,    kAEPrintDocuments,     (AEEventHandlerProcPtr) DoAEPrintDocuments},
  52.                         {kCoreEventClass,    kAEQuitApplication,    (AEEventHandlerProcPtr) DoAEQuitApplication}};
  53.  
  54.     for (index = 0; index < kNumOfAEHandlers; index ++) {
  55.         theHandler = &aeHandler[index];
  56.         eventProc = NewAEEventHandlerProc(theHandler->aeProc);
  57.         err = AEInstallEventHandler(theHandler->aeClass, 
  58.                                 theHandler->aeID, eventProc, 0, false);
  59.  
  60.         if (err != noErr) {
  61.             gDone = true;
  62.             index = kNumOfAEHandlers;
  63.         }
  64.     }
  65.     (void) GetCurrentProcess(&targetPSN);
  66.     err = CreateAETarget(&targetPSN, &pSelfTarget);
  67. }
  68.  
  69. //----------------------------------------------------------------------------
  70. // DoAEOpenApplication
  71. //----------------------------------------------------------------------------
  72. #pragma segment AESupport
  73. pascal OSErr DoAEOpenApplication(AppleEvent * ae, AppleEvent * reply, long refCon)
  74. {
  75. #pragma unused (ae, reply, refCon)
  76.     return noErr;
  77. }
  78.  
  79. //----------------------------------------------------------------------------
  80. // DoAEOpenDocuments
  81. //----------------------------------------------------------------------------
  82. #pragma segment AESupport
  83. pascal OSErr DoAEOpenDocuments(AppleEvent * ae, AppleEvent * reply, long refCon)
  84. {
  85. #pragma unused (ae, reply, refCon)
  86.     return errAEEventNotHandled;
  87. }
  88.  
  89. //----------------------------------------------------------------------------
  90. // DoAEPrintDocuments
  91. //----------------------------------------------------------------------------
  92. #pragma segment AESupport
  93. pascal OSErr DoAEPrintDocuments(AppleEvent * ae, AppleEvent * reply, long refCon)
  94. {
  95. #pragma unused (ae, reply, refCon)
  96.     return errAEEventNotHandled;
  97. }
  98.  
  99. //----------------------------------------------------------------------------
  100. // DoAEQuitApplication
  101. //----------------------------------------------------------------------------
  102. #pragma segment AESupport
  103. pascal OSErr DoAEQuitApplication(AppleEvent * ae, AppleEvent * reply, long refCon)
  104. {
  105. #pragma unused (ae, reply, refCon)
  106.     gDone = true;
  107.     return noErr;
  108. }